package com.zzy.system.domain;

import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zzy.common.core.domain.BaseEntity;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单实体类，用于表示订单的各种属性信息。
 */
@Data
public class PurchaseInStockOrderDetailItem extends BaseEntity {
    //主键 自增
    private Integer purchaseInStockOrderDetailItemId;
    /**
     * SPU的唯一标识符，用于在业务系统中唯一确定某个商品或服务，是关联其他相关业务数据的重要依据。
     */
    @JSONField(name="spu_id")
    private String spuId;

    /**
     * 采购规格的唯一标识符，用于区分不同的采购规格，在涉及多种规格商品采购的场景下可准确对应相应规格的数据。
     */
    @JSONField(name="spec_id")
    private String specId;

    /**
     * 采购规格的名称，直观展示所采购商品规格的具体称呼，方便业务人员识别和操作相关商品。
     */
    @JSONField(name="spec_name")
    private String specName;

    /**
     * 分类名称，按照“一级分类名/二级分类名”的格式记录商品所属的分类信息，有助于对商品进行分类管理和统计分析。
     */
    @JSONField(name="category_name")
    private String categoryName;

    /**
     * 入库数量，记录商品实际入库的数量，使用Float类型表示（若对精度要求较高，可考虑使用BigDecimal类型）。
     */
    @JSONField(name="in_stock_count")
    private BigDecimal inStockCount;

    /**
     * 入库金额，代表商品本次入库对应的总金额，是采购成本等业务计算和统计的重要数据指标。
     */
    @JSONField(name="in_stock_amount")
    private BigDecimal inStockAmount;

    /**
     * 入库金额（不含税），即商品入库金额去除相关税费后的金额数值，用于在财务等业务场景下进行不含税成本核算等操作。
     */
    @JSONField(name="in_stock_amount_no_tax")
    private BigDecimal inStockAmountNoTax;

    /**
     * SPU税率，用于计算商品涉及的税费情况，在税务相关业务处理以及金额核算中起到关键作用。
     */
    @JSONField(name="tax_rate")
    private BigDecimal taxRate;

    /**
     * 入库单价，通过入库金额除以入库数量得出，反映了单个商品的入库价格情况，便于价格分析和成本控制。
     */
    @JSONField(name="in_stock_unit_price")
    private BigDecimal inStockUnitPrice;

    /**
     * 采购规格基本单位，明确了采购规格所采用的基本计量单元，如千克、个等，用于商品数量的计量和统计。
     */
    @JSONField(name="std_unit_name")
    private String stdUnitName;

    /**
     * 采购规格批次，在站点进销存模式为先进先出时有特定意义，用于区分不同批次的商品，若没有批次信息则为空字符串。
     */
    @JSONField(name="batch_number")
    private String batchNumber;

    /**
     * 操作人，记录执行与该采购、入库等业务操作相关的人员信息，便于追溯业务操作的责任主体。
     */
    @JSONField(name="operator")
    private String operator;

    /**
     * 货位号，用于标识商品存放的具体位置编号，在仓库管理等场景下方便查找和管理商品的存放位置。
     */
    @JSONField(name="shelf_id")
    private String shelfId;

    /**
     * 货位名称，以更直观的方式展示商品存放位置的名称信息，相较于货位号更便于业务人员理解和识别。
     */
    @JSONField(name="shelf_name")
    private String shelfName;
    //生产日期
    @JSONField(name="production_time")
    private String productionTime;
    //到期日
    @JSONField(name="life_time")
    private String lifeTime;
    //保质期
    @JSONField(name="shelf_life_days")
    private String shelfLifeDays;
    /**
     * 供应商采购入库单id，用于唯一标识每一个供应商采购入库单，是业务操作中关联相关数据的重要依据。
     */
    private String inStockSheetId;
    private int isPush;
    private Date pushDate;

    private int pushErrorNum;

    private String sourceCode;


}